题目
The quick brown fox jumps over the lazy dog!
ihxo{smzdodcikmodcismzd}
题目链接
http://www.shiyanbar.com/ctf/1852
题解
The quick brown fox jumps over the lazy dog!
ihxo{smzdodcikmodcismzd}
输入密钥:Thequickbrownfoxjumpsoverthelazydog
请输入密文:ihxo{smzdodcikmodcismzd}
解密后所得到的明文是:CTFXKMPAAFZBRCOIZBKMPAAB
playfair密码
playfair密码(英文:Playfair cipher 或 Playfair square)是一种替换密码,1854年由查尔斯·惠斯通(Charles Wheatstone)的英国人发明。
题目提示是Fair-Play,得知是playfair密码。
首先playfair的加密过程用到一个5x5的字母矩阵,容纳26个字母,其中i和j挤到一个格子里,字母填写顺序取
决于密钥,The quick brown fox jumps over the lazy dog!
将空格去掉,然后填入矩阵里,重复出现的字母只填一次。
填完后如下表:
t h e q u
i/j c k b r
o w n f x
m p s v l
a z y d g
填完密钥出现的字母后,若还有空余,就填字母表中剩余的字母(按字母表顺序)
加密过程:把明文按两个字母一组分组,比如hello就分成he,lx,lo
相邻字母相同的情况下,中间加个填充字母x(有时候是q),若最后一个字母没组员,也加个填充字母。
加密规则
两明文字母m1,m2同行:密文字母c1,c2在它们右边,同行循环,比如hu加密后是et;
m1,m2同列:c1,c2在它们下边,同列循环,hz加密后是ch;
m1,m2不同行列:c1,c2是m1,m2 组成的长方形的另两个顶点,顺序是c1与m1同行,c2与m2同行,cd加密后是bz;
解密规则
1 若c1 c2在同一行,对应明文p1 p2分别是紧靠c1 c2 左端的字母。其中最后一列被看做是第一列的左方。
2 若c1 c2在同一列,对应明文p1 p2分别是紧靠c1 c2 上方的字母。其中最后一行被看做是第一行的上方。
3 若c1 c2不在同一行,不在同一列,则p1 p2是由c1 c2确定的矩形的其他两角的字母。
其实就是反其道而行之。
附上网上找的一个解密程序
|
|